import 'package:convergence_media/utils/fast_hash.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:isar/isar.dart';

part 'nav_user_model.g.dart';
part 'nav_user_model.freezed.dart';

/// {@template user_info}
/// 用户信息
/// {@endtemplate}
@freezed
@Collection(ignore: {'copyWith'})
class NavUserModel with _$NavUserModel {
  const factory NavUserModel({
    /// 手机号
    required String mobile,

    /// 用户名
    String? username,

    /// 用户昵称
    String? nickname,

    /// 头像base64
    String? avatar,

    /// 积分？
    // TODO(lilua): 这是个什么东西
    int? score,

    /// 用户 token
    String? token,

    /// 用户 id
    int? userId,

    /// 创建时间
    int? createtime,

    /// 过期时间
    int? expiretime,

    // TODO(lilua): 这是个什么东西x2
    int? expiresIn,
  }) = _NavUserModel;

  const NavUserModel._();

  /// 标识数据库的唯一 id
  /// 通过快速散列算法，从手机号字符串生成 Id 类型的 id 值
  Id get isarId => fastHash(mobile);
}
